﻿using System;
using System.Collections.Generic;
using ClickLand.CorporacionPlaza.Presentacion.CorporacionPlazaWS;
using ClickLand.Web.UI.WebControls;

namespace ClickLand.CorporacionPlaza.Presentacion.Contratos.AdministracionContrato
{
    /// <summary> Interface que hace de contrato para la vista que se encarga de agregar cliente </summary>
    public interface IAgregarContrato
    {
        /// <summary> Propiedad que obtiene el tipo de establecimiento seleccionado </summary>
        ClickLandDropDownList Establecimientos { get; }


        /// <summary> Propiedad que obtiene el tipo de documento seleccionado </summary>
        ClickLandDropDownList TipoDocumento { get; }


        /// <summary> Propiedad que obtiene el control que lista los clientes seleccionado </summary>
        ClickLandDropDownList Clientes { get; }


        /// <summary> Propiedad que obtiene el control que lista los tipos de firmas seleccionado </summary>
        ClickLandDropDownList TipoFirma { get; }


        /// <summary> Propiedad que obtiene el control que lista el canon </summary>
        ClickLandGridView ListaCanon { get; }


        /// <summary> Propiedad que obtiene la fecha de inicio del contrato </summary>
        DateTime FechaInicioContrato { get; }


        /// <summary> Propiedad que obtiene la fecha fin del contrato </summary>
        DateTime FechaFinContrato { get; }


        /// <summary> Propiedad que obtiene el porcentaje de venta indicado </summary>
        string PorcentajeVenta { get; }


        /// <summary> Propiedad que obtiene el porcentaje de venta indicado </summary>
        string NombreFirmante { get; }


        /// <summary> Propiedad que obtiene el porcentaje de venta indicado </summary>
        string NombreFirmante2 { get; }

        
        /// <summary> Propiedad que obtiene el porcentaje de venta indicado </summary>
        string NombreFirmante3 { get; }
        

        /// <summary> Propiedad que obtiene el nombre del comercial </summary>
        string NombreComercial { get; }


        /// <summary> Propiedad que obtiene si el tipo de garantia es fiador </summary>
        bool GarantiaFiador { get; }


        /// <summary> Propiedad que obtiene el nombre del fiador </summary>
        string NombreFiador { get; }


        /// <summary> Propiedad que obtiene el numero de cedula ingresado por el usuario </summary>
        string CedulaFiador { get; }


        /// <summary> Propiedad que obtiene el numero de telefono </summary>
        string NumeroTelefonoFiador { get; }


        /// <summary> Propiedad que obtiene el correo electronico del fiador </summary>
        string CorreoFiador { get; }


        /// <summary> Monto de la garantia ingresada </summary>
        string MontoGaranta { get; }


        /// <summary> Fecha de emision de la poliza </summary>
        DateTime FechaEmisionPoliza { get; }


        /// <summary> Fecha de emision de la poliza </summary>
        DateTime FechaVencimientoPoliza { get; }
        

        /// <summary> Propiedad que obtiene el monto de la poliza </summary>
        string MontoPoliza { get; }


        /// <summary> Propiedad que obtiene el nombre de la empresa aseguradora </summary>
        string EmpresaAsegurador { get; }


        /// <summary> Propiedad que obtiene el nombre del beneficiario de la poliza </summary>
        string NombreBeneficiarioPoliza { get; }


        /// <summary> Propiedad que asigna el valor del nombre del cliente para la confirmacion </summary>
        string NombreClienteConfirmacion { set; }


        /// <summary> Propiedad que asigna el valor de la fecha de inicio del contrato para la confirmacion </summary>
        string FechaInicioConfirmacion { set; }


        /// <summary> Propiedad que asigna el valor de la fecha de finalizacion del contrato para la confirmacion </summary>
        string FechaFinConfirmacion { set; }


        /// <summary> Propiedad que asigna el nombre del establecimiento para la confirmacion </summary>
        string EstablecimientoConfirmacion { set; }


        /// <summary> Propiedad que asigna el porcentaje de venta para el contrato para la confirmacion </summary>
        string PorcentajeConfirmacion { set; }


        /// <summary> Propiedad que asigna el tipo de firma el contrato para la confirmacion </summary>
        string TipoFirmaConfirmacion { set; }


        /// <summary> Propiedad que asigna el nombre del firmante contrato para la confirmacion </summary>
        string NombreFirmanteConfirmacion { set; }


        /// <summary> Propiedad que asigna el nombre del firmante contrato para la confirmacion </summary>
        string NombreFirmante2Confirmacion { set; }


        /// <summary> Propiedad que asigna el nombre del firmante contrato para la confirmacion </summary>
        string NombreFirmante3Confirmacion { set; }


        /// <summary> Propiedad que obtiene la cantidad de periodos indicados por el usuario </summary>
        int Periodo { get; }


        /// <summary> Propiedad que obtiene el tipo de pension seleccionado por el usuario </summary>
        int TipoPension { get; }


        /// <summary> Propiedad que obtiene la informacion del contrato </summary>
        ContratoDto Contrato { get; set; }


        /// <summary> Propiedad que obtiene el nombre comercial en la comercial </summary>
        string NombreComercialConfirmacion { set; }


        /// <summary> Propiedad que da valor a la lista de canon ingresado por el cliente </summary>
        ContratoPensionDto[] ListaCanonConfirmacion { set; }


        /// <summary> Propiedad que asgina el tipo de Incremento en la confirmacion </summary>
        string TipoIncrementoConfirmacion { set; }


        /// <summary> Propiedad que asgina la informacion del fiador en la confirmacion </summary>
        FiadorDto[] FiadorConfirmacion { set; }


        /// <summary> Propiedad que asgina el valor al monto de garantia ingresado por el usuario </summary>
        string MontoGarantiaConfirmacion { set; }


        /// <summary> Propiedad que asgina la informacion de la poliza en la confirmacion </summary>
        PolizaDto[] PolizaConfirmacion { set; }


        /// <summary> Lista de cliente de renovacion </summary>
        ClickLandDropDownList ClientesRenovacion { get; }
        
        
        /// <summary> Fecha de inicio de contrato de renovacion </summary>
        string FechaInicioContratoRenovacion { set; get; }
        
        
        /// <summary> Propiedad indica si el contrato a crear es nuevo </summary>
        bool Nuevo { get; }


        /// <summary> Propiedad que obtiene la fecha fin del contrato de renovacion </summary>
        DateTime FechaFinContratoRenovacion { get; }


        /// <summary> Propiedad que obtiene el monto del canon </summary>
        string MontoCanon { get; }


        /// <summary> Propiedad que obtiene o setea la lista de cliente </summary>
        List<ClienteDto> ListaCliente{ get; set; }


        /// <summary> Porpiedad que asgina la visibilidad de los otros firmantes en la confirmacion </summary>
        bool HayOtrosFirmantesConfirmacion { set; }
    }
}
